package com.yctan.base.mapper;


import java.util.List;

public interface BaseMapper<T> {
    /**
     * 获取单条数据
     * @param id
     * @return
     */
    public T get(Integer id);

    /**
     * 获取单条数据
     * @param entity
     * @return
     */
    public T get(T entity);


    /**
     * 查询数据列表，如果需要分页，请设置分页对象，如：entity.setPage(new Page<T>());
     * @param entity
     * @return
     */
    public List<T> findList(T entity);

    /**
     * 插入数据
     * @param entity
     * @return
     */
    public int insert(T entity);

    /**
     * 更新数据
     * @param entity
     * @return
     */
    public int update(T entity);

    /**
     * 删除数据（物理删除，从数据库中彻底删除）
     * @param id
     * @return
     */
    public int delete(Integer id);

    /**
     * 删除数据（逻辑删除，更新del_flag字段为1,在表包含字段del_flag时，可以调用此方法，将数据隐藏）
     * @param entity
     * @see public int delete(T entity)
     * @return
     */
    public int deleteByLogic(T entity);
}
